// ============================== 导入依赖 ============================== //

import CORE from '@/CORE'
import OneClass from '@api/equipment/model/ChangeDto'
import { TYPE } from '@admin/components/detail/DetailDevice/store/change/state'
import API from './API'

const MAP = {
  WORD: TYPE[0][2], // 详情词语
  audit: '审批', // 审批提示
  finish: '确认归还', // 完成提示
  hasFinish: true, // 有无完成
  hasReturn: true, // 有无归还
}

const STATUS = [
  [1, '待审批', '', '红'],
  [2, '未通过', '', '灰'],
  [3, '未归还', '', '蓝'],
  [4, '已归还', '', '绿'],
]

// ============================== 导出状态集 ============================== //

export { MAP, STATUS }

export default {
  // —————————————————————————————— 常量状态 —————————————————————————————— //

  /**
   * 接口
   */
  API: {
    MENU: ['__详情__', MAP.WORD], // 菜单
    ...API,
  },

  /**
   * 映射
   */
  MAP: {
    ...MAP,

    // 必须的字段，有值才会显示弹窗
    REQUIRED_KEY: 'id',

    // 弹窗属性
    MODEL_PROPS: {
      title: `${MAP.WORD}详情`,
      bgClose: true,
    },
  },

  /**
   * 字典
   */
  DICT: {
    /**
     * 状态
     */
    STATUS,
  },

  /**
   * 首要开关
   *
   * 1. 初始化完成时调用
   * 2. 提交后刷新时调用
   */
  MAIN_START: 'startOne', // 'startInfo' 或 'startList' 或 'startOne' 或 ''

  /**
   * 初始单项
   *
   * 1. 初始存在，才能响应
   * 2. setOne() 合并时使用
   * 3. openAdd() 新增时使用
   */
  INIT_ONE: CORE.initObj(OneClass, {
    //
  }),
}
